#include <vcl.h>
#include "Eic.h"
#pragma hdrstop

#include <math.h> 
#include "MTAG_EIC.h"
#include "uNombre.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)
#define MODULE_TAG MTAG_UDATES

/////////////////////////////////////////////////////////////////////////////////////
//                                                                                 //
// bool DecompNum( AnsiString aNum, int &iNbEntiers, int &iNbDecim, int &PosDec )  //
//                                                                                 //
// Fonction: Decompose un nombre en Nbre d'entiers, de decimaux, indique la        //
//          position du point decimal et retourne true s'il est signe              //
//                                                                                 //
// P.E.: Le nombre                                                                 //
//       Le nombre d'entiers            ( rempli en sortie )                       //
//       Le nombre de decimales         ( rempli en sortie )                       //
//       La position du point decimal   ( rempli en sortie : commence a l'indice 1)//
//                                                                                 //
// P.S.: true si signe                                                             //
//                                                                                 //
/////////////////////////////////////////////////////////////////////////////////////
bool __fastcall DecompNum( const AnsiString &aNum, int &iNbEntiers, int &iNbDecim, int &PosDec )
{
bool bSigned = false;
AnsiString _aNum(aNum);

try
   {
   if( _aNum.Pos( "-" ) != 0 )
        bSigned  = true;

   PosDec = _aNum.LastDelimiter (".,");
   if (PosDec != 0)
    _aNum[PosDec] = DecimalSeparator;  //Remplacement du . ou de la , par le DecimalSeparator

//   PosDec  = _aNum.Pos(DecimalSeparator);
    ASSERT(PosDec == _aNum.Pos(DecimalSeparator));   //Pour vérifier que la ligne précédente est inutile

    if( PosDec == 0 )
        {
        iNbDecim        = 0;
        iNbEntiers  = _aNum.Length();
        if( bSigned )
            iNbEntiers --;
        }
    else
        {//Attention, si CEditNum ne fonctionne plus, c'est peut-être parce qu'il comparait avec le Mask au lieu de aNum
        iNbDecim        = _aNum.Length() - PosDec;
        iNbEntiers      = _aNum.Length() - iNbDecim - 1;
        if( bSigned )
            iNbEntiers --;
        }

   }
catch(Exception &e)
   {
   EICDisplayException(TAG(30), e);
   }
return( bSigned );
}

///////////////////////////////////////////////////////////////
//                                                           //
// Concatene le texte specifie en retirant tous les espaces  //
//                                                           //
// Fonction: Concatene( AnsiString aText )                   //
//                                                           //
// P.E.: Le text a concatene                                 //
//                                                           //
// P.S.: Le nouveau texte concatene                          //
//                                                           //
///////////////////////////////////////////////////////////////
/*AnsiString & __fastcall ConcateneNum( const AnsiString &aText )
{
int         i       = 0;
int         iSize   = aText.Length();
AnsiString  aTemp;
char Car;

try
   {
    while( i < iSize )
        {
        if((Car = aText.c_str()[i]) != ' ' )
            aTemp += AnsiString( Car );
        i ++;
        }
   }
catch(Exception &e)
   {
   EICDisplayException(TAG(40), e);
   }
return( aTemp );
}*/

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//                                                                            //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////
/*double __fastcall ConvertFrancToEuro( double dValueFranc )
   {
   try
      {
      double dEuro = 6.55957;

      return( Round( dValueFranc / dEuro, 2 ));
      }
   catch(Exception &e)
      {
      throw EUser(TAG(80), e);
      }
   }*/


